Method, system and computer program product for producing a raised relief map from images of an object

ABSTRACT

A method for obtaining a model of an object surface from a plurality of images of said object, wherein the object is illuminated with one or more illumination sources, the method comprising: —obtaining a set of images each comprising an array of pixels and representing similar views of an object, wherein the similar views are obtained under different illumination conditions; —defining a model function that expresses the known pixel intensity values of the images in terms of the following unknown model components: —a first model component (A) representing the albedo of the object at each pixel location and being the same for the plurality of images and being an albedo value; —a second model component (L) representing an intensity of illumination for each image and being an illumination source intensity value being the same for all pixels of each image; —a third model component (V) representing a specific illumination direction and being different for each image and being an illumination vector and being the same for all pixels of each image; —a fourth model component (N) representing surface normal directions of the object surface at each pixel position and being the same for all images and being a normal vector; —performing one or more sequences of minimization operations to minimize a difference function between the pixel values obtained from the set of images and pixel values calculated using said model function, each minimization operation being performed by allowing one of said model components (A, L, V, N) to vary while the others remain unchanged; —outputting the fourth model component (N) as said model of the object surface.

FIELD OF THE INVENTION

The present invention relates to a method, system and computer program product for producing a raised relief map of the surface of an object from a plurality of images of the object.

BACKGROUND OF THE INVENTION

In the domain of image processing, the photometric stereo method is a well-known method for producing a raised relief map of the surface of an object. The photometric stereo method operates by using a plurality of images of an object taken with a camera in a fixed position, with one or more illumination sources providing different directions of illumination. The aim of the photometric stereo method is to provide a raised relief map of the surface of an object by applying a specific algorithm to data related to images being taken. In the domain of biological analysis, for example, the objects comprise micro-organisms. The raised relief maps of objects such as micro-organisms obtained using such a method allow several characteristics of the micro-organisms to be identified, such as the texture of the surface and the type of relief. Thus, the algorithm generates a raised relief map or a deepness map also called depth map of the surface of the object.

In addition, in the specific domain of biological analysis, in vitro analysis of a biological sample is performed to determine the type of micro-organism potentially present in the biological sample. A specific environment is associated with the biological sample to allow the growth of micro-organisms. The specific environment can be located, for example, in a Petri dish. After incubation of a Petri dish comprising a biological sample, the surface of the Petri dish may be illuminated with an imaging system as described in published European application EP2520923. The imaging system comprises several illumination sources located around the biological sample. Each illumination source may illuminate the biological sample from a different direction. A fixed position camera may take different images of a same surface of the Petri dish. The plurality of illumination sources associated with different directions of illumination represents complex illumination conditions.

In the prior art, a photometric stereo method as disclosed in bibliographical reference [12] comprises an algorithm which takes into account three matrices related to three components describing image properties of grey scale images when illumination occurs. A first matrix A relates to albedo values which represent the ratio of incident illumination being reflected by the surface of the object. The matrix A comprises the same value for all the pixels as the entire surface is, presumably, made of the same material. A second matrix V represents the location of the illumination source for each image captured by the camera. A third matrix N represents the normal value of each pixel of each image in a three-dimensional space. However, such an algorithm only operates if the illumination source is a point light source and if directions of illumination sources are known. In the domain of biological analysis, for example, the illumination sources are not point light sources and the location of the illumination sources is either unknown or not easy to model. Thus, the algorithm cannot be applied to such images. In addition, the optical properties or orientation of the surface of biological objects are not known. Thus, albedo values for such objects are not known. Furthermore, no parameters related to the intensity of the illumination sources are taken into account in this algorithm. Thus, during the reconstruction process, information regarding the properties of the surface of the object may be lacking or insufficient and lead to incorrect representation of the surface of the object. As a result, such an algorithm is not always suitable for use in photometric stereo reconstruction of images taken in the domain of biological analysis or of any images taken with a fixed position camera and complex illumination conditions or unknown illumination directions.

The bibliographical reference [13] discloses an improved algorithm for use in a photometric stereo method. The algorithm takes into account a fourth matrix related to value L which represents the various intensities of the illumination sources. However, such an algorithm only operates if the positions of illumination sources and/or normals of specific pixels of images are known. In some situations, such information is either not available or difficult to obtain. Thus, approximations are necessary to apply this algorithm. As a result, such an algorithm is not suitable for generating an accurate image of a surface of an object if illumination conditions are unknown, as is often the case in the domain of biological analysis. In addition, approximations may lead to incorrect representation of the image of the surface of the object at the end of the image reconstruction process.

As a result, there is a need to improve the standard photometric stereo method to allow the generation of a raised relief map of the surface of an object to enable the reconstruction of a surface of an object for which no prior information is available and which are associated with a plurality of illumination sources with different illumination directions.

OBJECTS OF THE INVENTION

It is an object of the present invention to overcome at least some of the problems associated with the prior art.

It is a further object of the invention to provide a method, system and computer program product for generating a raised relief map or a representation of the surface of an object by means of a photometric stereo method without using any information regarding the position and/or the direction of the illumination sources illuminating the object and without using any information regarding the normals of the surface of the object.

SUMMARY OF THE INVENTION

The present invention provides a method, system and computer program product for generating a raised relief map of an object as set out in the accompanying claims. According to one aspect of the invention, there is provided a method for obtaining a model of an object surface from a plurality of images of said object, wherein the object is illuminated with one or more illumination sources, the method comprising:

-   -   obtaining a set of images each comprising an array of pixels and         representing similar views of an object, wherein the similar         views are obtained under different illumination conditions;     -   defining a model function that expresses the known pixel         intensity values of the images in terms of the following unknown         model components:         -   a first model component representing the albedo of the             object at each pixel location, the first model component             being an albedo value which is the same for the plurality of             images;         -   a second model component representing an intensity of             illumination for each image, the second model component             being an illumination source intensity value which is the             same for all pixels of each image;         -   a third model component representing a specific illumination             direction, the third model component being an illumination             vector which is different for each image and the same for             all pixels of each image;         -   a fourth model component representing surface normal             directions of the object surface at each pixel position, the             fourth model component being a normal vector which is the             same for all images;     -   performing one or more sequences of minimization operations to         minimize a difference function between the pixel values obtained         from the set of images and pixel values calculated using said         model function, each minimization operation being performed by         allowing one of said model components to vary while the others         remain unchanged;     -   outputting the fourth model component as said model of the         object surface.

Preferably, said sequence of minimization operations comprises an iterative loop in which each of said model components is varied in turn at least once before a subsequent iteration, said iterative loop being repeated until a termination condition is met.

Preferably, said iterative loop comprises one or more inner loops wherein a subset of said model components are varied a number of times before another subset of said model components is varied.

Preferably, one inner loop comprises varying said third model component and said fourth model component a number of times.

Preferably, one inner loop comprises varying said first model component and said second model component.

Preferably, minimization operations are performed, varying said third model component and said fourth model component a number of times before minimization is performed, varying said first model component and said second model component.

Preferably, the first model component comprises a first model sub-component and a first structuring component, wherein the first structuring component adapts the first model sub-component to reproduce the surface properties of the object.

Preferably, the second model component comprises a second model sub-component and a second structuring component, wherein the second structuring component adapts the second model sub-component to reproduce the illumination conditions of the illumination sources.

Preferably, the third model component comprises a third model sub-component and a third structuring component, wherein the third structuring component adapts the third model sub-component to reproduce the illumination conditions of the illumination sources.

Preferably, the first structuring component represents a same coefficient for the plurality of images comprising the same albedo value for each pixel for the plurality of images.

Preferably, the second structuring component represents a same intensity coefficient for all pixels of an image from the plurality of images.

Preferably, the third structuring component represents the direction of illumination of one illumination source associated with one image of said plurality of images, this being the same for all pixels of an image from the plurality of images.

Preferably, the one or more illumination sources comprise Red, Green and Blue color channels.

Preferably, the first model component is the same for each pixel and each color channel for the plurality of images and the second model component is the same for each color channel for all pixels of each image.

Preferably, the first structuring component comprises the same albedo value for each pixel for each color channel for the plurality of images.

Preferably, the second structuring component represents a same intensity coefficient for each color channel for all pixels of each image.

Preferably, model function comprises a modified model function, wherein the model function related to the first, second, third and fourth model components is equal to the modified model function related to the first, second and third model sub-components and the fourth model component.

According to a second aspect of the invention, there is provided a computer program product comprising instructions which when executed cause a programmable data processing apparatus to perform steps of the method.

According to a third aspect of the invention, there is provided an imaging system for obtaining a model of an object surface from a plurality of images of said object, the imaging system comprising:

-   -   one or more illumination sources to illuminate the object with         different directions of illumination, wherein each image is         associated with a determined direction of illumination;     -   an image capture device for detecting the pixel values of each         pixel in each image of the plurality of images;     -   a data processor comprising a first memory component for storing         the following unknown model components:         -   a first model component representing the albedo of the             object at each pixel location, the first model component             being an albedo value which is the same for the plurality of             images;         -   a second model component representing an intensity of             illumination for each image, the second model component             being an illumination source intensity value which is the             same for all pixels of each image;         -   a third model component representing a specific illumination             direction, the third model component being an illumination             vector which is different for each image and the same for             all pixels of each image;         -   a fourth model component representing surface normal             directions of the object surface at each pixel position, the             fourth model component being a normal vector which is the             same normal vector for all images;     -   wherein the data processor performs one or more sequences of         minimization operations to minimize a difference function         between the received pixel values over the set of images and         pixel values calculated using a defined model function that         expresses the known pixel values of images in terms of the         unknown model components;     -   and     -   wherein each minimization operation is performed by allowing one         of said model components to vary while the other model         components remain fixed and     -   for outputting the normal model component as said model of the         object surface.

Preferably, the data processor further comprises a second memory component for storing structuring components to adapt one or more of the model sub-components to reproduce the surface properties of the object and the illumination conditions of the illumination sources.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example, to the accompanying drawings, in which:

FIG. 1 shows a simplified diagram of the imaging system showing various types of illumination directions used for an object, according to an embodiment of the present invention;

FIG. 2 shows a simplified diagram of the imaging system showing the modules of the imaging system, according to an embodiment of the present invention;

FIG. 3 shows a mathematical formula, which models the photometric stereo method, according to an embodiment of the present invention;

FIG. 4 shows a mathematical formula, which models the photometric stereo method, according to another embodiment of the present invention;

FIG. 5 shows a flowchart of the method, according to an embodiment of the present invention;

FIG. 6 shows an example of an initial image of a first object, according to an embodiment of the present invention;

FIG. 7 shows an example of an initial image of a second object, according to an embodiment of the present invention;

FIG. 8 shows an example of an initial image of a third object, according to an embodiment of the present invention;

FIG. 9 shows an example of an initial image of a fourth object, according to an embodiment of the present invention;

FIG. 10 shows a raised relief map of the first object of FIG. 6, according to an embodiment of the present invention;

FIG. 11 shows a raised relief map of the second object of FIG. 7, according to an embodiment of the present invention;

FIG. 12 shows a raised relief map of the third object of FIG. 8, according to an embodiment of the present invention;

FIG. 13 shows a raised relief map of the first object of FIG. 9, according to an embodiment of the present invention;

FIG. 14 shows an example of an initial image of a fifth object, according to an embodiment of the present invention;

FIG. 15 shows a raised relief map of the fifth object of FIG. 14, when considering three initial images of the fifth object, according to an embodiment of the present invention;

FIG. 16 shows a raised relief map of the fifth object of FIG. 14, when considering five initial images of the fifth object, according to an embodiment of the present invention;

FIG. 17 shows a raised relief map of the fifth object of FIG. 14, when considering ten initial images of the fifth object, according to an embodiment of the present invention;

FIGS. 18, 19, 20 and 21 show four initial images of a sixth object, each initial image relating to a different direction of illumination, according to an embodiment of the present invention;

FIG. 22 shows a top view of a raised relief map of the sixth object when considering the initial images of FIGS. 18, 19, 20 and 21, according to an embodiment of the present invention;

FIG. 23 shows a side view of the raised relief map of the sixth object as shown in FIG. 22, according to an embodiment of the present invention;

FIGS. 24, 25, 26 and 27 respectively show a side view of a raised relief map of various objects, according to an embodiment of the present invention;

FIG. 28 shows a table for comparing different reconstructed surfaces obtained with the method of the present invention in the first and second embodiments of the present invention;

FIGS. 29a, 29b and 29c relate to an initial image, a ground truth normal image and a depth map image respectively;

FIG. 29d shows a table for comparing different reconstructed surfaces obtained with the method of the present invention when considering different initialization operations;

FIG. 30 shows a table for comparing different reconstructed surfaces obtained with the method of the present invention when considering different termination conditions.

FIGS. 31, 32, 33 and 34 show several images of a same object, each image comprising bright zones at different locations, according to an embodiment of the present pre-process;

FIGS. 35, 36 and 37 respectively show a representation of FIG. 31 in Red/Green/Blue space, according to an embodiment of the present pre-process;

FIG. 38 shows a graph representing the ratios of pixel values of selected pixels of an image to other pixel values for corresponding pixels in other images for a specific color channel, according to an embodiment of the present pre-process;

FIG. 39 shows a representation of a sigmoid function for removing bright zones from an image, according to an embodiment of the present pre-process;

FIG. 40 shows a representation of a sigmoid function for simultaneously removing bright zones and dark zones from an image, according to an embodiment of the present pre-process;

FIG. 41 shows the flowchart of the method, according to one aspect of the present pre-process;

FIGS. 42, 43, 44 and 45 show several corrected images of the same object of FIGS. 31, 32, 33 and 34, each bright zone being corrected, according to an embodiment of the present pre-process;

FIGS. 46, 47 and 48 respectively show a representation of FIG. 42 in Red/Green/Blue space, according to an embodiment of the present pre-process;

FIG. 49 shows a representation of an object comprising bright zones;

FIG. 50 shows a representation of a detail of the object shown in FIG. 49 wherein a plurality of bright zones is represented, according to an embodiment of the present pre-process;

FIG. 51 shows a representation of a corrected image of the detail shown in FIG. 52, according to an embodiment of the present pre-process;

FIGS. 52, 53 and 54 show three different images of the same object wherein the object comprises specific bright zones and dark zones, according to an embodiment of the present pre-process;

FIGS. 55, 56 and 57 respectively relate to corrected images of FIGS. 52, 53 and 54 respectively according to an embodiment of the present pre-process;

FIG. 58 shows a representation of an initial image I1 related to the Red color channel of the image shown in FIG. 53, according to an embodiment of the present pre-process;

FIG. 59 shows a representation of a reference image I2 related to the Red color channel of the image shown in FIG. 26, according to an embodiment of the present pre-process;

FIG. 60 shows a graph comprising a solid line representing intensity values or pixel values related to the line of pixels of interest for initial image I1 shown in FIG. 58 and a dashed line representing intensity values or pixel values related to the line of pixels of interest for reference image I2 shown in FIG. 59, according to an embodiment of the present pre-process;

FIG. 61 shows a corrected image I1 c of initial image I1 shown in FIG. 58 using reference image I2 shown in FIG. 59, according to an embodiment of the present pre-process;

FIG. 62 shows a graph comprising a solid line representing the mean value W and a dashed line representing the corrected function f(W) for initial image I1 shown in FIG. 58 and reference image I2 shown in FIG. 59, according to an embodiment of the present pre-process;

FIG. 63 shows a graph comprising a solid line representing intensity values or pixel values for the line of pixels of interest for initial image I1 shown in FIG. 58 and a dashed line representing intensity values of pixel values for the line of pixels of interest for the corrected image I1 c shown in FIG. 61, according to an embodiment of the present pre-process;

FIG. 64 shows a graph comprising a solid line representing the mean value W estimated as the ratio of initial image I1 shown in FIG. 58 and reference image I2 shown in FIG. 59 and a dashed line representing the corrected mean value We estimated as being the ratio of corrected image I1 c as shown in FIG. 61 and reference image I2 as shown in FIG. 59, according to an embodiment of the present pre-process;

FIG. 65 shows three representations of f(W) with k=0.75 and α=100 being fixed values and where the threshold value V=1, 1.2 and 1.5, shown with different types of dotted lines, according to an embodiment of the present pre-process;

FIG. 66 shows three representations of f(W) with V=1.25 and α=100 being fixed values and where k=1, 0.75 and 0.5, shown with different types of dotted lines, according to an embodiment of the present pre-process;

FIG. 67 shows three representations of f(W) with V=1.25 and k=0.75 being fixed values and where α=10³, 10² and 10, shown with different types of dotted lines, according to an embodiment of the present pre-process;

FIG. 68 represents an artificial surface of an object captured with different illumination directions, according to an embodiment of the present pre-process;

FIG. 69 represents one of the initial images where correction of a bright zone is required, according to an embodiment of the present pre-process;

FIG. 70 represents an artificial image made of a superimposition of the specular components of seven images corresponding to seven evenly spatially distributed illumination sources, according to an embodiment of the present invention;

FIG. 71a represents a corrected image of FIG. 69 using seven reference images acquired from seven evenly spatially distributed illumination sources, according to an embodiment of the present invention;

FIG. 71b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 43a , for the diffuse component and for the result of the soft correction, according to an embodiment of the present invention;

FIG. 72 represents an artificial image made of a superimposition of the specular components of seven images corresponding to seven randomly spatially distributed illumination sources, according to an embodiment of the present invention;

FIG. 73a represents a corrected image of FIG. 69 using seven reference images acquired from seven randomly spatially distributed illumination sources, according to an embodiment of the present invention;

FIG. 73b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 73a , for the diffuse component and for the result of the soft correction, according to an embodiment of the present invention;

FIG. 74 represents an artificial image made of a superimposition of the specular components of seven images corresponding to seven closely located illumination sources, according to an embodiment of the present invention;

FIG. 75a represents a corrected image of FIG. 41 using seven reference images acquired from seven closely located illumination sources, according to an embodiment of the present invention;

FIG. 75b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 75a , for the diffuse component and for the result of the soft correction, according to an embodiment of the present invention;

FIG. 76 represents the specular component of one image corresponding to an illumination source opposite to the specular zone to be corrected, according to an embodiment of the present invention;

FIG. 77a represents a corrected image of FIG. 69 using one reference image acquired from one illumination source opposite to the specular zone to be corrected, according to an embodiment of the present invention;

FIG. 77b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 77a , for the diffuse component and for the result of the soft correction, according to an embodiment of the present invention;

FIG. 78 represents an artificial image made of a superimposition of the specular components of ninety-nine images corresponding to ninety-nine randomly spatially distributed illumination sources, according to an embodiment of the present invention;

FIG. 79a represents a corrected image of FIG. 69 using ninety-nine reference images acquired from ninety-nine randomly spatially distributed illumination sources, according to an embodiment of the present invention;

FIG. 79b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 79a , for the diffuse component and for the result of the soft correction, according to an embodiment of the present invention;

FIGS. 80a, 80b, 80c, and 80d represent four initial images of a circular object comprising bright zones at different locations without any overlapping zones, according to an embodiment of the present pre-process;

FIGS. 81a, 81b, 81c, and 81d represent images of the circular object of FIGS. 80a, 80b, 80c, and 80d where bright zones have been corrected using an inpainting process well-known in the prior art, according to an embodiment of the present pre-process;

FIGS. 82a, 82b, 82c, and 82d represent corrected images of the circular object of FIGS. 80a, 80b, 80c, and 80d after application of the method of the present invention relating to soft correction, according to an embodiment of the present pre-process;

FIG. 83 represents a schematic view of contour lines of the surface of the circular object of FIGS. 80a, 80b, 80c, and 80d after processing with a surface reconstruction method without any correction of bright zones, according to an embodiment of the present pre-process;

FIG. 84 represents a schematic view of contour lines of the surface of the circular object of FIGS. 80a, 80b, 80c, and 80d after reconstruction with an inpainting process well-known in the prior art, according to an embodiment of the present pre-process;

FIG. 85 represents a schematic view of contour lines of the surface of the circular object of FIGS. 80a, 80b, 80c, and 80d using the prior art algorithm of Coleman and Jain, according to an embodiment of the present pre-process;

FIG. 86 represents a schematic view of contour lines of an object after processing a reconstruction method according to an embodiment of the present invention, with specific settings of V_high, k_high, k_low and α_high, α_low, according to an embodiment of the present pre-process;

FIG. 87 represents a schematic view of a superimposition of four images, wherein each image comprises a specular zone and wherein no specular zone overlaps another one, according to an embodiment of the present pre-process;

FIG. 88 represents a schematic view of a superimposition of four images, wherein each image comprises a specular zone and wherein all specular zones partially overlap at least another one, according to an embodiment of the present pre-process;

FIG. 89 represents a schematic view of a superimposition of four images, wherein each image comprises a specular zone and wherein at least one specular zone totally overlaps another one.

DETAILED DESCRIPTION OF THE INVENTION

The description below discloses the invention in a sufficiently clear and complete manner, based on specific examples. However, the description should not be understood as limiting the scope of protection to the specific embodiments and examples described below.

In the description below, the term “pixel” relates to a position in an image and the terms “pixel value” and “pixel intensity value” refer to the detected value of the corresponding captured intensity of the pixel in said image.

In the description below, the terms “initial image” and “image” refer to an image of an object. An object may be associated with a plurality of initial images. In the present invention, the number of initial images shall be at least equal to three. An initial image of the object corresponds to a specific illumination direction of an illumination source or to a main illuminating direction of a plurality of illumination sources. In addition, each initial image is taken with a fixed position camera at a determined location. The described embodiment comprises three initial images, i.e. images 1, 2 and 3, taken under different illumination directions with a camera having a fixed position. It should be understood that the present invention is also suitable for processing a plurality of initial images. Each initial image comprises a plurality of pixels and the three color channels in RGB space, i.e. red, green and blue. Calculations below consider only one pixel, such as pixel 1, in each initial image as an example. It is understood that calculations may also apply to the plurality of pixels of an initial image. The term “ni” refers to the number of initial images of an object. The term “np” refers to the number of pixels in each initial image.

An image may be defined as the combination of two components. The first component is the diffuse component which corresponds to the part of light being reflected without any preferred direction. The second component is the specular component which corresponds to the part of light being reflected in a preferred direction. The aim of the present invention is to remove the specular component to retrieve the diffuse component.

In addition, in the description below, the word “object” may refer to any object being illuminated with various directions of illumination and wherein initial images of an object are taken with a fixed position camera. The object may correspond to one or more objects of small dimension such as micro-organisms or to objects of a greater dimension such as a bottle of water, animals, etc.

The term “shading” relates to information which corresponds to the distribution of light on an object due to the position of light and the surface of the object. For images of the present invention, the information may be used to reconstruct the object surface with the stereo photometric method of the present invention.

In the description below, the representation of the surface of the object with the raised relief map takes place in an orthonormal space x, y, z where z is a function of x and y, such as z=f(x,y).

FIG. 1 shows an imaging system 100 comprising one or more base units 102. Each base unit 102 includes the optics and control circuitry 103 for generating red (R), green (G) and blue (B) illumination related to RGB color channels. Each base unit 102 comprises corresponding red, green, blue illumination sources 104, 105, 106 which are all independently controllable. Illumination sources 104, 105, 106 may produce annular illumination, inverse annular illumination or lateral illumination, for example.

The imaging system 100 may optionally comprise a holding unit 101 for holding an object 107. Illumination sources 104, 105, 106 are located above the object.

Regarding the orientation of illumination sources 104, 105, 106, the optical axes of illumination sources 104, 105, 106 are arranged such that they apply illumination in a direction which is non-perpendicular to the object 107.

The imaging system 100 also includes an image capture device 108, such as a camera, which is directed towards the holding unit 101. Illumination from any combination of illumination sources 104, 105, 106 from any of the base units 102 can be directed towards the object. The image capture device 108 may then capture initial images of any object 107 which has been illuminated.

As shown in FIG. 1, an annular beam 109 may also illuminate the object 107 and is produced by one of the base units 102.

The illumination sources 104, 105, 106 may be of any preferred type, such as light emitting diodes (LED) operating at red (R), green (G) and blue (B) frequencies; a simple white light source; an ultra-violet (UV) source or any other appropriate radiation source. The number of light sources in any location can vary from that shown and described herein. Each RGB illumination is made up of three LEDs operating at each respective frequency. Alternatively, one LED may produce the RGB illumination. For different illumination sources, there may be different combinations of RGB LEDs. Alternatively, a line or bar of diodes may be arranged to produce one illumination direction.

In addition to the control circuitry and optics 103 in each unit 102 which controls the function thereof, there may be an overall control system 110 comprising at least a computer, a display unit, processing modules and image enhancing algorithms and any other processes or techniques.

The control system 110 may be used to control the selection of the illumination sources to be used for specific applications. In addition, the control system may apply different image enhancing techniques and image processing procedures for different applications. Image enhancing techniques are methods and techniques for enhancing the quality of an initial image or for making pertinent information visible for an expert analyzing the content of the image, for example in the biological domain. Image processing relates to mathematical operations applied to an image matrix to provide the extraction of information from initial images in order to provide decision support or enable automatic decisions, for example.

The control system 110 may be used to carry out any other function and/or control operation for the imaging system 100. These include, but are not limited to:

-   -   controlling the level of luminance;     -   controlling the balance of the red, green, blue components;     -   controlling exposure time;     -   controlling illumination combinations;     -   testing the system;     -   calibrating the system; and     -   any other appropriate control based on the use and purpose of         the analysis.

The aim of the present invention is to propose an improved photometric stereo method for producing an image being a raised relief map also called a raised map of the surface of an object from a plurality of initial images of the object with no knowledge of the properties of the surface of the object and the illumination conditions.

As shown in FIG. 2, the image capture device 108 comprises an intensity detection device 112 for selecting each pixel in an image and determining the corresponding pixel value or intensity value I of the pixel. The intensity detection device 112 detects or observes the intensity of each pixel in a determined number of images and for each different color channel R, G, B to produce a matrix representing the detected or observed or captured intensity values of all pixels for all the initial images.

In a first embodiment, the intensity detection device 112 selects an initial image such as image 1. The intensity detection device 112 then selects a specific color channel, such as color channel R. The intensity detection device 112 detects the pixel value of each pixel in image 1 for color channel R. When considering specific examples of pixel 1 in image 1, the detected pixel values may refer to IR1(pixel1).

The intensity detection device 112 proceeds in the same manner with color channels G and B for image 1. In a similar manner, the detected pixel values may refer, for example, to IG1(pixel1) for color channel G and IB1(pixel 1) for color channel B.

The intensity detection device 112 then carries out the same steps for images 2 and 3. The intensity detection device 112 always selects corresponding pixels in all other initial images to determine the corresponding intensity of the same pixel in all the different initial images. It should be understood that the term “same pixel” means that the pixel may be located at the same spatial location in all initial images. Thus, pixel 1 in image 1 is located at the same place as pixel 1 in images 2 and 3.

The detected pixel values refer to the following notations, for example when considering pixel1:

-   -   for image 2:

IR2(pixel1) IG2(pixel1) IB2(pixel1);

-   -   for image 3:

IR3(pixel1) IG3(pixel1) IB3(pixel1).

The intensity detection device 112 may store the detected intensities in a corresponding matrix such as matrix IR1 which represents all pixel values for image 1 and associated color channel R.

In a similar manner, the pixel values of all pixels of image 1 associated with color channel G are organized in matrix IG1 and the pixel values of image 1 related to color channel B are arranged in matrix IB1.

In the same manner that pixel values corresponding to pixels of image 1 are arranged in matrices IR1, IG1 and IB1, the detected pixel values of all pixels for all images are arranged in corresponding matrices which refer, for example, to:

IR2, for color channel R and image 2 IR3, for color channel R and image 3 IG2, for color channel G and image 2 IG3, for color channel G and image 3 IB2, for color channel B and image 2 IB3, for color channel B and image 3.

Due to the number of pixel values gathered in the corresponding matrix, the intensity detection device 112 may process an unwrapping step to convert the matrix into a vector comprising a line of data and thus facilitate further calculations based on the pixel values. Thus, matrix I has a number of rows which is equal to the number of initial images, where an initial image comprises three lines relating to the three color channels. Matrix I has a number of columns which is equal to the number of pixels being the same for each initial image.

The imaging system 100 also comprises a data processor 114 to carry out specific calculations based on pixel values and on a determined mathematical formula.

The imaging system 100 further comprises a first memory component 116 for storing a database of model components for storing four model components.

A first model component represents the albedo value of a pixel of an initial image associated with a first matrix A. The first matrix A comprises albedo values of pixels, each albedo value relating to the ratio of incident illumination being reflected by each pixel of the surface of the object. Thus, the albedo value represents an optical property which depends on the material of the surface of the object. The first matrix A has a number of rows which is equal to 3×ni, where each row represents albedo values for all pixels of an initial image for a specific color channel. Thus, three rows represent the three color channels R, G, B. The first matrix A comprises a number of columns which is equal to the number of pixels in an initial image.

A second model component represents the intensity of each illumination source and is associated with a second matrix L. Only one illumination source is used at a time for each image acquisition. Thus, the second matrix L is a matrix where each row with a non-null value relates to the intensity value of the illumination source which is unique for each initial image. The second matrix L contains a number of rows which is equal to 3×ni to represent the intensity value for each color channel of each initial image. The second matrix L comprises a number of columns which is equal to the value of the number np.

A third model component V represents the direction of illumination of each illumination source. The third model component comprises a third matrix V comprising three components Vx, Vy and Vz related to the orthonormal space (x, y, z). Thus, a vector (Vx, Vy, Vz) represents the direction of an illumination source during the image acquisition process. The third matrix V forces the condition of having only one specific or main illumination direction for all RGB channels for each initial image. For instance, a same illumination source such as a LED may be used for the three color channels R, G, B which all have the same illumination direction for a same image. The illumination source then emits a specific wavelength for each color channel. Thus, V^(T) comprises three rows and a number of columns equal to 3×ni. In the present invention, due to calculation constraints based on the mathematical functions f and g indicated below, the transpose matrix V^(T) should be used. The third model component V is then applied in the functions f and g below with the form of the transpose matrix V^(T). Thus, the third matrix V has a number of rows equal to 3×ni, where a row represents a color channel and, as an initial image is represented with three color channels being R, G and B, an initial image is represented with three rows. The third matrix V comprises three columns where each column relates to an axis of the orthonormal space x, y, z.

A fourth model component represents the position of the three-dimensional normal or 3D normal of a pixel of an image. The 3D normal is a vector which is perpendicular to the tangent plane of the pixel. As the normal or surface orientation relates to a specific property of a surface, such property does not depend on illumination conditions. Thus, when considering a same pixel, the normal vector is the same in all images. The fourth model component is associated with a fourth matrix N. The fourth matrix N comprises a number of rows which is equal to 3 related to each axis of the orthonormal space x, y, z. The fourth matrix N comprises columns which represent the coordinates of each normal of a pixel in the orthonormal space (x, y, z). The fourth matrix N comprises a number of columns which is equal to the number np.

A first mathematical formula (1) as shown below models the photometric stereo model based on the above described four model components A, L, V and N:

f(A,L,V,N)=A⊙L⊙(V ^(T) N)  (1)

where ⊙ represents a multiplication operation in an entrywise manner wherein each value of a matrix is operated with the corresponding value of another matrix.

A, L, V and N must be retrieved with the method of the present invention to obtain f(A, L, V, N)=I.

FIG. 3 schematically shows the structure of each matrix, A, L, V and N.

The mathematical formula (1) may comprise an optional matrix C which is used when considering images of large size with non-uniform illumination conditions. The mathematical formula (1) may then refer to an optional mathematical formula (1a):

f(A,L,C,V,N)=A⊙L⊙C⊙(V ^(T) N)  (1a)

It will be understood that, according to an embodiment of the present invention, initial images relate to images of small size where the distribution of light may be considered to be uniform. Thus, the mathematical formula to be used does not comprise the optional matrix C and refers to the mathematical formula (1).

The above mathematical formula (1) may further comprise specific calculation optimizations to avoided increasing computation time due to the high amount of data being processed between all matrices A, N, L and V^(T) for the four model components.

Thus, the data processor 114 further comprises a second memory component 118 for storing a database of structuring components for storing at least three structuring components which optimize calculation. The structuring components W adapt the mathematical formula (1) by considering and modeling the physical properties and constraints of the initial images by considering illumination conditions and properties of the surface of the object.

A first structuring component W_(A) represents a same albedo coefficient for the plurality of initial images and comprises only 0 and 1 values. As each pixel of the plurality of initial images has the same albedo value for a same color channel R, G or B, the matrix W_(A) has a number of rows which is equal to 3×ni as shown below, for example:

$W_{A} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \; & \; & \; \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \; & \; & \; \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

where ni=3

A second structuring component W_(L) represents a same or identical intensity coefficient for all pixels of the plurality of initial images for each color channel.

Thus, as each illumination source is of equal intensity, W_(L) is a vector having a length which equals the number np such as, for example:

W_(L)=[1 1 1( . . . )1 1 1]

A third structuring component W_(V) represents the direction of illumination of one illumination source associated with one image from the plurality of initial images for each pixel and for each color channel.

W_(V) is as indicated below when considering three initial images.

$W_{V} = \begin{bmatrix} 1 & 0 & 0 \\ 1 & 0 & 0 \\ 1 & 0 & 0 \\ \; & \; & \; \\ 0 & 1 & 0 \\ 0 & 1 & 0 \\ 0 & 1 & 0 \\ \; & \; & \; \\ 0 & 0 & 1 \\ 0 & 0 & 1 \\ 0 & 0 & 1 \end{bmatrix}$

The optimization process is carried out to avoid repetitions of identical rows and columns for each matrix A, L and V and is performed by breaking down each matrix A, L and V into a multiplication of model sub-components, these being matrices A′, L′ and V′ respectively and corresponding structuring components W, these being W_(A), W_(V) and W_(L) respectively.

Thus, the model components are as follows (2):

for matrix A: A=W_(A).A′ for matrix L: L=L′.W_(L) for matrix V: V=W_(V).V′^(T)

Matrices A′, V′ and L′ represent a unique set of data related to pixels for one image. Matrices W_(A), W_(V) and W_(L) respectively provide the coefficient for each matrix A′, V′ and L′ to retrieve the content of matrices A, V and L when computing the multiplications shown in (2).

Thus, the data processor 114 also operates a corresponding function g which now comprises the structuring components and model sub-components as shown in the mathematical formula (3) below:

g(A′,L′,V′,N)=(W _(A) ×A′)⊙(L′×W _(L))⊙((W _(V) ×V′ ^(T))⊙N)  (3)

where f(A, L, V, N)=g(A′, L′, V′, N)

The aim of the present invention is to determine the values of the matrices A′, L′, V′ and N to obtain the resulting value for g(A′, L′, V′, N). The best resulting value is considered to be that which is as close as possible to the value of I, which represents the intensity value of initial images as taken from the image capture device 108. Thus, the function f or g has a known result which is equal to the value of I. Function g(A′, L′, V′, N) comprises known structuring components which are W_(A), W_(L) and W_(V). Model components A′, L′, V′ and N must be evaluated to obtain a resulting value for g which is as close as possible to the observed value I.

FIG. 4 schematically shows the structure of each model component A′, L′, V′, N and of the structuring components W_(A), W_(L) and W_(V).

Function g(A′, L′, V′, N) comprising model components A′, L′, V′, N and corresponding structuring components W_(A), W_(L) and W_(V) is used in the description of the method according to FIG. 5, as an embodiment of the present invention. The method according to FIG. 5 may also use the function f(A, L, V, N).

Thus, the present invention provides a method for determining the values of A′, L′, V′ or A, L, V and N in a specific manner to minimize the error between the observed intensity I and the corresponding calculated intensity g or f. The raised relief map or the representation of the surface of the observed object may then be created by using the obtained matrix N related to the fourth model component.

The method comprises operating an algorithm based on the steps as shown in FIG. 5. The algorithm relates to an alternating optimization which belongs to one of the existing heuristic algorithms which consists in minimizing the objective function by successively setting all variables except one as disclosed in bibliographic references [1], [2] and [3]. Heuristic principles of alternating optimization are often used for providing blind source separation when one aims at observation matrix factorization into two matrices under certain conditions (e.g., non-negativity).

According to the present invention, the algorithm encompasses the four-component matrix representation and includes additional constraints for each model component.

The algorithm comprises two sub-minimization procedures as described below and shown in detail in FIG. 5.

The algorithm comprises a main loop associated with a main loop variable i and a termination condition. In the present embodiment, the termination condition for the main loop comprises a number of iterations n_it of the main loop. The number n_it may be equal to 10, for example. The main loop comprises inner loops being a first loop and a second loop. The first loop is associated with a first loop variable j and the second loop is associated with a second loop variable k.

In step 500, the model components A′, L′, N of the method are initialized to equal a corresponding determined value A′₀, L′₀, N₀.

In step 502, the value of i representing the main loop variable of the method is initialized to 0.

In step 504, the value of n_it is compared to the main loop variable i to determine if the value of n_it is greater than the value of the main loop variable i.

If the value of the number of iteration cycles n_it is greater than the value of the main loop variable i, then the process follows with step 506.

In step 506, the first loop variable j is initialized to 0.

In step 508, the value of the first loop variable j is compared to a predetermined value p associated with the first loop to determine if the value of p, such as p=5, is greater than the value of j. If the value of p is greater than the value of j, the method follows with step 510. Thus, j<p represents a termination condition.

Steps 510 and 512 below represent a first sub-minimization procedure. Thus, j<p is a termination condition for the first minimization method.

In step 510, an optimization process such as a minimization operation is applied. The minimization operation may comprise the application of a least square minimization technique such as a quadratic loss function. In the present embodiment, a quadratic loss function is applied to obtain the quadratic error between the observed intensity I and the calculated intensity by using the function g. In step 510, the quadratic loss function is based on a variation of the value of the model component V′. In step 510, a specific value of V′ is evaluated to provide the minimum difference between the observed intensity I and the function g. The model components A′, L′, N remain unchanged. An evaluated value of V′ is determined.

In step 512, the quadratic loss function is similarly based on the variation of the value of the model component N. In step 512, a specific value of N is determined to provide the minimum difference between the observed intensity I and the function g. The model sub-components A′, L′, V′ remain unchanged. The value V′ corresponds to the evaluated value of V′ from step 510. An evaluated value of N is determined.

In step 514, the first loop variable j is increased from j to j+1.

In step 508, the increased value of j is compared with the value of p. The first loop operates until the value of j is greater than the value of p. When the value of j is lower than the value of p, step 510 operates again in a new iteration of the first loop. A new evaluated value of V′ is determined by the minimization operation to obtain an optimal evaluated value V′ that gives the minimum difference between I and g, wherein g considers the evaluated value of N from step 512 in a previous iteration of the first loop.

In a new iteration of the first loop in step 512, a new evaluated value of N is compared with all previous evaluated values of N of step 512 to determine the evaluated value N that gives the minimum difference between I and g, wherein g considers the evaluated value of V′ from step 510 in a previous iteration of the first loop.

The first loop provides optimal evaluated values for V′ and N.

When the value of j is greater than the value of p, the method follows with the second loop beginning at step 516.

In step 516, the second loop variable k is initialized to 0. In step 518, the value of the second loop variable k is compared to the predetermined value p associated with the second loop to determine if the value of p, such as p=5, is greater than the value of k. If the value of p is greater than the value of k, the method follows with step 520.

Thus, k<p is a termination condition.

Steps 520 and 522 below represent a second sub-minimization procedure. Thus, k<p represents a termination condition for the second minimization method.

In step 520, the quadratic loss function applies with the model component L′. In step 520, a specific value of L′ is evaluated to provide the minimum difference between the observed intensity I and the function g. The model sub-components A′, V′ and the model component N remain unchanged. The values of V′ and N correspond to the optimal evaluated values of V′ from the first loop which both give the minimum difference between I and g. An evaluated value of L′ is determined.

In step 522, the quadratic loss function applies with the model component A′. In step 522, a specific value of A′ is evaluated to provide the minimum difference between the observed intensity I and the function g. The model sub-components L′, V′ and the model component N remain unchanged. The value of L′ corresponds to the evaluated value of L′ from step 520 and the values of V′ and N correspond to the optimal evaluated values of V′ and N from the first loop which both give the minimum difference between I and g. An evaluated value of A′ is determined.

In step 524, the second loop variable k is increased to k+1.

The second loop operates until the value of k is greater the value of p. When the value of k is lower than the value of p, step 520 operates again in a new iteration of the second loop. A new evaluated value of L′ is determined by the minimization operation to obtain an optimal evaluated value L′ that gives the minimum difference between I and g, wherein g considers the evaluated value of A′ from step 520 in a previous iteration of the second loop.

When the value of k is greater than the value of p, the method follows with step 526 where the main loop variable i is increased to i+1.

The method then follows with step 504 to compare the number of loop iterations n_it with the value of the main loop variable i. The main loop operates until the number of iteration n_it is lower than the value of the main loop variable i. Where the value of the main loop variable i is greater than the value of the number of repetitions n_it, then the method stops.

n_it represents a specific termination condition for the present method.

An alternative termination condition may comprise a threshold value associated with the difference value obtained between the observed intensity I and the calculated intensity f(A, L, V, N) or g(A′, L′, V′, N). Thus, the method stops when the calculated difference between I and f or I and g is equal to or below the threshold value or a threshold difference value, for example.

Another alternative termination condition may be based on a threshold difference value. When using a threshold difference value, the method stops when the difference between two values of a same model component based on two consecutive iterations is equal to or below the threshold value.

The aim of the method is to consider separately and iteratively for each model component A′, L′, V′ and N the value which gives the minimum difference in the calculation of the quadratic loss function. The method is based on main, first and second iterative loops to optimize the determination of the values of the model components A′, L′, V′ and N. The aim of the repetition of the main loop, first loop and second loop is to reach the best convergence. Thus, for each of steps 510, 512, 520 and 522, the data processor 114 operates a comparison step at each iteration of the first and second loops and for each model component. Indeed, each time the data processor 114 calculates the quadratic loss function to obtain a difference value when increasing a specific model component, the data processor 114 compares the difference value obtained with any existing difference values previously obtained. Thus, the data processor 114 may determine the minimum difference value and retain the minimum difference value for further calculations.

The value of the number of iterations p is a determined number which may be the same for j and k. The first loop relates to model components V and N and the second loop relates to model components A and L for improved optimization of the method.

Model components V, N relate to interaction between the direction of the surface of the object and the direction of the illumination sources 104, 105, 106. Such interaction determines an angle between these two directions. Calculations related to the determination of such an angle are relatively complex to run due to the size of the corresponding matrices.

Thus, the first loop provides calculations regarding model components V and N or V′ and N to optimize calculations and computation time associated with the second loop. The second loop provides calculations regarding model components A and L. A corresponds to a weighting coefficient associated with the surface of the object. L corresponds to a weighting coefficient associated with the illumination source. Thus, calculations related to such model components are relatively easy to run due to the size of the corresponding matrices.

The arrangement of the model components A, L, V, N or A′, L′, V′ N in such a first and second loop provides for better convergence of the method. Thus, computation time is reduced when compared with a different arrangement of the model components A, L, V, N or A′, L′, V′, N for carrying out the optimization process, such as the minimization operation.

Alternative arrangements may be: V′, N, L′, A′ or V′, N, A′, L′ or V′, L′ A′, N or V′, L′, N, A′ or V′, A′, N, L′ or V′, A′, L′, N.

When all iterations of main loop, first loop and second loop have been processed, the method stops.

The data processor 114 retrieves the value of N as determined from the method of the present invention. The data processor 114 then builds a surface pixel by pixel by considering the value of N for each pixel by applying one of the algorithms disclosed in bibliographical references [4], [5], [6] and [7].

Thus, the data processor 114 provides a raised relief map of the surface of the considered object.

FIGS. 6, 7, 8 and 9 each show an initial image of first objects. FIGS. 10, 11, 12 and 13 show raised relief maps of the surface of the objects of FIGS. 6, 7, 8 and 9 according to the present invention. In this embodiment, the number of loop iterations is n_it=10 and the value of the first and second loop variables is p=5.

The present method ensures that a better evaluation of the model component A′, L′, V′ and N is provided when considering a significant number of good quality images. In addition, an even spatial distribution of the illumination sources during image acquisition provides better results. FIG. 14 represents an initial image of an object being a tea bag. FIG. 15 shows a raised relief map of the object of FIG. 14 when considering three initial images of the object shown in FIG. 14. FIG. 16 shows a raised relief map of the object of FIG. 14 when considering five initial images of the object shown in FIG. 14. FIG. 17 shows a raised relief map of the object of FIG. 14 when considering ten initial images of the object shown in FIG. 14. From a visual check, the raised relief map in FIG. 17 comprises more details of the object than the raised relief maps in FIGS. 15 and 16. Visual results of analysis of the surfaces of the raised relief maps indicate an improved quality of the raised relief maps with no significant impact on the general surface aspect when compared to the initial image.

FIGS. 18, 19, 20 and 21 show initial images of a first object being a micro-organism. FIG. 22 shows a top view of the raised relief map of the surface of the object of FIGS. 18, 19, 20 and 21.

FIG. 23 represents a side view of the object of FIG. 22.

FIGS. 24, 25, 26 and 27 represent raised relief maps of various objects such as micro-organisms according to the present invention.

The above described optimization relates to a first embodiment of the present invention method which provides a solution for determining surface normals and for reconstructing the depth map.

In the above first embodiment, value constraints and quality constraints are not considered during the minimization steps. Each model component can be evaluated using least square method. During execution of the iterative procedure, values obtained after each sub-minimization can be projected into constraints. For albedo component A, all values of less than zero are equated to zero, and all values greater than one are set to one. A similar operation can be performed for light source intensities. Values in the L matrix that are less than zero are set to zero or to a very low value. Lighting directions V and surface normals N are only normalized after evaluation of the first minimization loop. Supplementary surface normals can be filtered by averaging filter with 3×3 sliding window in order to implement quality smoothness constraint just after normalization. Such post-evaluation constraints application is possible due to the iterative nature of the algorithm. Additional steps as described in the second embodiment below and relating to the evaluation of constraints may be provided at the end of the method to provide a first photometric stereo model component approximation.

In a second embodiment, the present invention provides a solution for considering value constraints and quality constraints for the photometric stereo model during execution of the optimization method.

In order to integrate value and quality restrictions for the photometric stereo components, the minimization functions for finding albedo values, light source intensities, light source directions and surface normals matrices take into account supplementary equality and inequality constraints. Minimization operations for each of the model components are described below.

In FIG. 5, the light source directions matrix including norm constraints should be found using the shown formula for V

subject to v_(k,x) ²+v_(k,y) ²+v_(k,z) ²=1 where k=1, . . . , ni, and vector (v_(k,x), v_(k,y), v_(k,z)) corresponds to the lighting direction used during the acquisition of the k^(th) image.

In order to obtain the surface normals matrix with value norm constraint and quality constraints, the minimization procedure for matrix N in FIG. 5 should be used with the conditions below:

$\quad\left\{ \begin{matrix} {{{n_{x,j}^{2} + n_{y,j}^{2} + n_{z,j}^{2}} = 1},} \\ {{{n_{x,j}^{2} + n_{y,j}^{2}} = 0},} \\ {{{\sum\limits_{p = {- 1}}^{1}{\sum\limits_{l = {- 1}}^{1}{n_{j}^{T}n_{j}^{({p,l})}}}} = 8},} \\ {{{{with}\mspace{14mu} p} \neq 0},{l \neq 0}} \end{matrix} \right.$

where j=1, . . . , np, n_(j) corresponds to 3D normal of the j^(th) pixel, and n_(j) ^((p,l)) denotes the j^(th) pixel neighbors in the initial non-vectorized image.

The light source intensity vector should contain only values greater than 0 and less than the maximum possible value of the image, H. Thus, the matrix L′ shown in FIG. 5 should be used with the conditions below:

subject to l_(k)>0, and l_(k)<H, where k=1, . . . , 3ni, ni is a number of input color images, and l_(k) corresponds to the intensity of light source used during the acquisition of the k^(th) input image.

Albedo matrix should contain only values from the interval [0; 1]. Thus, the minimization function A′_(i) for albedo approximation in FIG. 5 should be used with the conditions below:

subject to a_(kj)≧0 and a_(kj)≦1, where k=1, . . . , 3ni, j=1, . . . , np, ni is a number of input color images and np is a number of pixel in each input image.

Resolution of minimization problems with inequality constraints, i.e. albedo A′ and light source intensities L′ can be obtained by analyzing Karush-Kuhn-Tucker (KKT) conditions as shown in bibliographical reference [8], for the optimization error function including Lagrange multipliers, [9]. Due to the non-linear nature of the equality constraints for lighting directions and surface normals, the best solution for sub-minimizations can be obtained using the Levenberg-Marquardt algorithm for the loss function and including Lagrange multipliers as shown in bibliographical reference [10].

Photometric stereo model resolution provides unit normal, i.e. surface, orientation in each pixel. In order to obtain a depth map from these normal, one of the existing algorithms must be applied. Depth maps allow easier visual analysis of the resulting surface than that provided by a normal matrix. During experimentations, algorithms presented in bibliographical references [4], [5], [6] and [7] were tested. The integration algorithm presented in [4] turned out to be the fastest and the most efficient for all given examples. This algorithm is based on surface partial derivatives representation from two points of view: as discrete derivatives (simple difference between neighbor points) and derivatives calculated on the basis of surface normals. This algorithm was thus used for transition between normals obtained after the alternating optimization and the visualized depth map. In all the following demonstrations, the quality of reconstruction using the depth map is analyzed.

FIG. 28 shows a comparison of the reconstruction results for the simple hemispherical object and for the object from the MIT Intrinsic Images dataset as shown in bibliographical reference [11]. For the presented example, the alternating method from FIG. 5 was used with 10 global iterations and 5 internal iterations for each minimization. The results obtained show the necessity of implementing constraints. For a simple object such as a hemisphere, the alternating optimization with no variable value constraints is sufficient. However, more complicated surfaces require use of constraints. As shown in FIG. 28, different forms of constraints implementation can be compared with different processing times t: constraints directly integrated into each minimization procedure and projection to the space of constraints after each variable evaluation without constraints. The second implementation gives results close to the first one, but the processing time of evaluation is considerably reduced. Thus, in further experimentations, preference was given to the second mode of evaluation. Time of evaluation is presented for the system 64 bits, Intel® Core™ i7-2600, CPU 3.40 GHz, RAM=8Go using environment of Matlab R2012b.

In FIG. 5, step 500 relates to an initialization step based on determined values for A′, L′ and N.

When no prior information is available, initialization of model components necessary for alternating optimization algorithm should be made on the basis of the input images. Experimentations showed that influence of the initialization of some variables is more important than others. Most important is the initialization of the normals matrix N. All other variables which need initial values such as A′ and L′ may be chosen as matrices of one or random values. FIG. 29a relates to an initial image of an object. FIG. 29b relates to the image based on the matrix of the ground truth normals. FIG. 29c relates to the image based on the depth map. FIG. 29d shows a table comprising a plurality of resulting images arranged in a table for comparing the different images based on different initialization criteria for the matrix N. Each initialization criterion relates to a specific row in the table, as described below.

The first row No relates to initial values of N used at the first step of alternating procedure. Nx corresponds to the color channel R of the representation, Ny corresponds to the color channel G and Nz corresponds to the color channel B.

The second row “N” relates to the matrix N as retrieved by the alternating optimization algorithm. The second row relates to resulting values of normal encoded in R, G, B channels and obtained with different initializations from row No.

The third row “SF” relates to the resulting surface of the object which corresponds to the depth map obtained on the basis of the resulting normals from row N.

The first column “Ones” relates to a unit matrix.

The second column “Randn” relates to a matrix of normally distributed random values, such as a matrix of values following a Gaussian distribution.

The third column “Rand” relates to a matrix of uniformly distributed random values.

The fourth column “3D normals to Med” relates to the matrix comprising different types of initialization for normals. Initial normals equal to 3D normals to each pixel median intensity value. It appears that the algorithm combining the criteria of the fourth column provides the best quality of images.

FIG. 29d contains reconstruction results for different initializations of matrix N. Thus, the reconstructed surface with initialized normals equal to 3D normals to each pixel median intensity value is significantly better than with other initialized normals.

In evaluated examples, albedo matrix A′ was chosen as a unit matrix of the appropriate size [3×np]. Light source intensities vector L′ was taken as a vector of 3ni median values of all images channels. Initial matrix N′ of surface normal was defined as 3D normal to each pixel median intensity value. Thus, matrix N′ is of required [3×np] size. The described initialization is not the only possible choice but, in combination with the proposed alternating method, has proved to be efficient for obtaining qualitative surfaces.

In the preferred embodiment shown in FIG. 5, the termination condition of the main loop is based on a defined number of iterative loops. Alternative termination conditions may comprise a small quadratic error between the initial data and the evaluated variables, and a small variation of variables (or just one, the most important variable) from one iteration to another. FIG. 30 comprises a table showing three different rows relating to different objects and wherein the first column relates to the ground truth surface, the second column relates to the first termination condition, the third column relates to a second termination condition, and the fourth column relates to a third termination condition and corresponding processing times t. Results show that it is possible to obtain satisfactory surfaces using all of the mentioned criteria. Depending on the reconstructed surface complexity, initial image size and quality, similar reconstruction results were obtained with a value of it_(max) which is equal to 10 algorithm iterations, analysis of the model Err=∥I−g(A′_(i),L′_(i),V′_(i),N_(i))∥₂ ² and the normal variation Var=∥N_(i)−N_(i-1)∥₂ ² from one iteration to another. Err and Var are then compared to threshold values empirically determined. According to the desired results and evaluation time constraints, one of these criteria can be used.

The simplest criterion which can be chosen is a number of iterations. The number of iterations in the main loop is equal to 10, and the number of iterations in each of the sub-minimizations is 5. For these values, an algorithm convergence was obtained, and the quality of the resulting surfaces is sufficient for further analysis.

An additional specific image pre-process for improving the quality of initial images may be implemented with the present invention to improve the quality of initial images before applying the method of the present invention on said image that will be used in the present invention. Such an additional image pre-process may remove any dark zones or bright zones within initial images, such zones comprising pixel values that may lead to incorrect representation of the deepness map.

The data processor 114 may calculate specific ratios relating to the comparison between pixel values of pixels in a specific image for different color channels and pixel values of corresponding pixels in other images for corresponding color channels based on the above matrices. A ratio of 1 corresponds to the comparison of pixel values of two pixels having the same pixel value. Thus, when the ratio differs from 1, the ratio determines a discrepancy between a first pixel value of a pixel in an image and a second pixel value of the same pixel in one or more other images. Indeed, if the ratio is higher than 1, this means that the pixel in question corresponds to a brighter pixel. For example, the ratio may be 1.20, representing an increase of 20% of the ratio equal to 1. If the ratio is lower than 1, this means that the pixel in question corresponds to a darker pixel.

For image 1:

A ratio comprises, for example, IR1/IR2 to determine the presence of a bright zone in image 1 associated with color channel R when compared with image 2 for the same color channel.

The resulting ratio values may, for example, be arranged in corresponding matrices of ratios as follows, wherein each vector relates to the ratios of all pixels of image 1, pixel by pixel, and wherein each column of the matrices corresponds to a specific pixel in the related image.

For image 1:

IR1_ratio=(IR1/IR2; IR1/IR3) IR2_ratio=(IR2/IR1; IR2/IR3) IR3_ratio=(IR3/IR1; IR3/IR2)

For image 2 and image 3:

The data processor 114 iteratively carries out similar ratio calculations to obtain similar ratio matrices for images 2 and 3, and respectively for other color channels G and B for each image 1, 2, and 3 and for each pixel in image 2 and image 3.

When considering a multiplicity of N images, the data processor 114 iteratively carries out such ratio calculations for all pixels of all N images for each color channel.

The data processor 114 may also calculate a weighting value W which is a mean value based on the above obtained ratio matrices.

The mean value corresponds to a generalized mean value based on a statistical measure. The generalized mean aggregates values of a set of data to provide a resulting data value which characterizes or represents the set of data. The resulting data value is of the same type as any data value of the set of data. Thus, the resulting data value is comparable to any data value of the set of data. A generalized mean may refer to central tendency measures such as an arithmetic mean (namely an average), a weighted arithmetic mean, a geometric mean, or a median value of the calculated ratios.

In a first embodiment, the weighting value W is calculated for each pixel of each image and for each color channel and may be defined as indicated below:

$W = {\sum\limits_{j = 1}^{p}{c_{j}\frac{I}{I_{refj}}}}$

In the above formula, c_(j) is a coefficient allowing to compute weighted means. It may be equal to 1/p in the case of the arithmetic mean, wherein p is the number of reference images;

I_(ref j) is the j^(th) image in the plurality of p reference images; I is the image to be corrected.

The resulting weighting values W may be arranged in corresponding weighting matrices as follows:

For color channel R:

WR1=mean IR1_ratio for all the pixels in the image 1 WR2=mean IR2_ratio for all the pixels in the image 2 WR3=mean IR3_ratio for all the pixels in the image 3

In the above example, WR1 is a weighting matrix gathering values of W for all pixels of the red channel of image 1.

Similar weighting matrices are obtained for the color channels G and B.

When considering a multiplicity of N images, the data processor 114 iteratively carries out such weight matrix calculations for all pixels of all N images for each color channel.

FIG. 38 shows a representation of the ratio WR1 for image 1, as shown in FIG. 31, comprising 6000 pixels being identified with their respective location in image 1. In this example, the arithmetic mean is used to compute the mean value WR1 based on the three other images being used as reference images as shown in FIG. 32, FIG. 33 and FIG. 34. Thus, high values of WR1 correspond to a bright zone located between pixel 1500 to pixel 2000.

The weighting value W is associated with a threshold value V equal to 1 to compare the weighting value W with the threshold value V to determine in which situation the image associated with the weighting value contains a bright zone.

When the weighting value W is equal to the threshold value 1, this means that the intensity value of the same pixel in the two considered images is the same.

When the weighting value W is greater than the threshold value 1, this means that the pixel probably relates to a specular pixel.

When the weighting value W is lower than 1 for a specific pixel, this means that the pixel does not relate to a specular pixel.

When the weighting value W approaches the value 0, this means that the pixel probably relates to a dark zone.

The weighting value W may be associated with a specific margin value Vm, such as Vm_high for bright zones and Vm_low for dark zones to define two corresponding threshold intervals. Such threshold intervals enable specific bright zones and dark zones that may not be related to a specular zone or a shadow zone to be kept in the image. Indeed, such specific bright zones and dark zones may arise due to the interaction of illumination sources with the object caused by specific directions of illumination or the specific nature of the object, for example. Thus, when considering the threshold intervals, such specific zones are not considered as bright zones or dark zones to be corrected with the method of the present invention and remain unchanged in the image. Values of Vm_high and Vm_low are defined values such as Vm_high equals 0.2 and Vm_low equals 0.8.

The first threshold interval relates to the higher values of W that approach the value of 1 and indicate the absence of bright pixels. Based on the value of the margin value Vm_high, the first threshold interval relates to values of V from 1 to V_high, where V_high corresponds to predetermined values of V for bright pixels. In the present example, where Vm_high equals 0.2, the first threshold interval corresponds to values of V from 1 to 1+Vm_high, i.e. 1.2. Thus, when weighting values W are not equal to 1 and are included in the first threshold interval, this implies that related pixels are not considered as comprising any bright pixels corresponding to specular pixels. Thus, pixel values with a high intensity which may be generated by an effect of light due, for example, to the specific nature of the object, are considered for pixel correction but remain almost unchanged after pixel value correction.

The second threshold interval relates to the lower values of W that approach the value of 0 and indicate the presence of dark pixels. Based on the value of the margin value Vm_low, the second threshold interval corresponds to values of V from V_low to 1, where V_low corresponds to predetermined values of V for dark pixels. In the present example where Vm_low equals 0.8, the second threshold interval corresponds to values of V from 1 to 1−Vm_low i.e. 0.2. Thus, when weighting values W are not equal to 1 and are included in the second threshold interval, this implies that related pixels are not considered as comprising any dark pixels corresponding to a dark zone. Thus, pixel values with a low intensity which may be generated by an effect of light due, for example, to the specific nature of the object or the Petri dish material, are considered for pixel value correction but remain almost unchanged after pixel correction.

The threshold value V represents a requirement to determine whether pixel value correction with the method of the present pre-process is needed.

The data processor 114 may compute a determined formula based on the above ratios, weighting values W and threshold values V to provide corrected pixel values or corrected intensities Ic to replace a determined pixel value I of a pixel under consideration, the formula may for example take the following form:

${{Ic}\left( {{im\_ number},{p\_ number}} \right)} = \frac{I\left( {{im\_ number},{p\_ number}} \right)}{W_{{i\; m\; \_ \; {number}},{p\; \_ \; {number}}}^{f{(W_{{i\; m\; \_ \; {number}},{p\; \_ \; {number}}})}}}$

where: im_number is a subscripted reference for the corrected image from the plurality of N images; p_number is a subscripted reference for the corrected pixel; and f(W) provides continuous correction with respect to bright pixels and dark pixels to be corrected. A sigmoid function may enable such continuity. f(W) is a function such as the sigmoid function below and may represent a value higher than 0 and lower than 1:

${f\left( W_{{i\; m\; \_ \; {number}},{p\; \_ \; {number}}} \right)} = \frac{k}{1 + ^{{- \alpha}*{({W_{{i\; m\; \_ \; {number}},{p\; \_ \; {number}}} - V})}}}$

where:

-   -   k is a coefficient related to the modulation of the level of         correction as defined below;     -   V is the threshold value above described with threshold         intervals;     -   a is a parameter defining the sharpness of transition of the         sigmoid function;     -   W is the weighting value above described.

In the above formula, k is a predetermined coefficient for modulating the level of correction to modulate distortion caused by the pixel in question on the corrected image of the object and for modulating the level of the impact of the pixel correction on the other pixels within an image; the values of k are higher than 0 and lower than 1. A high value of k provides a significant correction of the pixel. Predetermined values of k such as k=0.75 for example, as shown in FIG. 66, for bright pixels and dark pixels may respectively refer to k_high and k_low.

Based on the above formula, when the weighting value W is relatively higher than the threshold value V, the function f(W) approaches the value of k which provides a correction of the related pixel value.

In a similar manner, when the weighting value W is relatively lower than the threshold value V, the function f(W) approaches the value 0 which also provides a strict correction of the related pixel value, which does not significantly change the pixel value.

In the above formula, a is a parameter defining the sharpness of transition of the sigmoid function. This means that a may vary to modulate the correction to smooth the visible transition between corrected zones and non-corrected zones of an object in an image as shown in FIG. 67. The smoothness of the transition improves the visible effect of the correction on the image and also improves the quality of the image for a process such as a further photometric stereo process for object surface reconstruction. Predetermined values of a for bright pixels and dark pixels may be referred to as α_high and α_low respectively.

Based on the above distinctions for parameters α, k and V, the above general formula of f(W) may be written in a detailed manner as follows:

${f(W)} = {\frac{k\_ high}{1 + ^{{- \alpha}\; \_ \; {{high}{({W - {V\; \_ \; {high}}})}}}} - \frac{k\_ low}{1 + ^{{- \alpha}\; \_ \; {{low}{({W - {V\; \_ \; {low}}})}}}} + {k\_ low}}$

FIGS. 39, 65, 66 and 67 show different embodiments comprising a different set of values for parameters k, f(W), V_high and V_low, and α.

FIG. 65 represents three dotted lines, each being related to a representation of f(W) with k=0.75 and α=100 being fixed values and where V=1, 1.2 and 1.5 to show the influence of V on f(W).

FIG. 66 represents three dotted lines, each being related to a representation of f(W) with V=1.25 and α=100 being fixed values and where k=1, 0.75 and 0.5 to show the influence of k of f(W).

FIG. 39 represents three dotted lines each being related to a representation of f(W) with V and k being fixed values and where α=10³, 10² and 10 to show the influence of a on f(W).

FIG. 67 represents three dotted lines, each being related to a representation of f(W) with V=1.25 and k=0.75 being fixed values and where α=10³, 10² and 10 to also show the influence of a on f(W).

FIG. 40 shows a representation of f(W) with different values of a and k associated with bright zones and dark zones, where α_high=100 and α_low=50 and k_high=0.6 and k_low=0.8.

As shown in FIG. 41, the method of the additional pre-process comprises several steps, 1302, 1304, 1306, and 1308, as described below. The method comprises step 1302 for the image capture device 108 to acquire a plurality of N images. In the described embodiment, at least two images must be taken with different illumination directions by different illumination sources.

In step 1302, the intensity detection device 112 considers each different image 1, 2 and 3 and detects the intensity of each pixel for each color channel to obtain the pixel values IR for each pixel, for each image and for each color channel.

In a step 1304, the data processor 114 calculates for a same pixel the ratio between the intensity of the pixel under consideration in an image and the intensity of the corresponding pixel in other images, for a same color channel to obtain the corresponding ratio values.

In a step 1306, the data processor 114 calculates the corresponding mean value of each calculated ratio for each pixel, for each image and each color channel.

In a step 1308, the data processor 114 calculates a corrected pixel value Ic based on the above formula, for each pixel in each image and for each color channel.

FIGS. 42, FIG. 43, FIG. 44 and FIG. 45 respectively show a corrected image of the object of FIG. 31, FIG. 32, FIG. 33 and FIG. 34 where the bright zone has been corrected in each image using the three other images as reference images for ratio estimation. The arithmetic mean has been used as a mean value for calculating W. FIGS. 46, 47 and 48 show the corrected image of FIG. 42 in the Red, Green and Blue channels respectively.

In the example of correction shown in FIGS. 46, 47 and 48, the above parameters k_high, k_low, V_high, V_low and α_high and α_low may be determined as indicated below:

k_high=k_low=0.75 V_high=1.2 and V_low=0.2 α_high=100 and α_low=50.

For strict correction, parameter V_high may equal 1.2.

For soft correction, parameter V_high may equal 1.2 and parameter a may equal 10 in combination with different values of k. When k=1, the correction appears to be maximal.

When k approaches 0, no correction is provided.

These values of parameters k_high, k_low, V_high, V_low and α_high and α_low are empirically determined based on the calculated mean value of the ratios. In all examples of the present specification, the set of parameters indicated above is used.

FIGS. 49 to 50 and 52 to 54 refer to images which are stored in a public database as mentioned in A. Hertzmann, S. M. Seitz, “Example-Based Photometric Stereo: Shape Reconstruction with General Varying BRDF”, IEEE Transactions on pattern analysis and machine intelligence, vol 27, 8, p. 1254-1263, 2005. FIG. 49 corresponds to one of eight images of an object representing a cat and available in the public database. FIGS. 52, 53 and 54 correspond to three of the fourteen images of an object representing a fish that are available in the public database.

FIG. 49 shows an image of an object representing a cat with a plurality of bright zones.

FIG. 50 shows specific bright zones located around and on the eye of the cat. After processing the image shown in FIG. 49 with the method of the additional pre-process, a corrected image as shown in FIG. 51 is obtained. The method for obtaining the corrected image is carried out by using the other seven images of the cat as reference images. The arithmetic mean is used for calculating mean value W and the set of parameters k_high, k_low, V_high, V_low and α_high and α_low is the same as the one above mentioned. A visual check indicates that bright zones present in the image shown in FIG. 50 do not appear in the image shown in FIG. 51. In addition, a further visual check indicates that the details of FIG. 50 representing the eye of the cat have not been altered as a result of applying the method according to the additional pre-process.

In other examples shown in FIGS. 52, 53 and 54, a plurality of bright zones and dark zones can be observed. As shown in FIGS. 55, 56 and 57, dark zones and bright zones have been removed by applying the method according to the invention. The method used for obtaining the corrected image consists of using the other thirteen images of the fish as reference images wherein the thirteen images differ from the image to be corrected. The arithmetic mean is used for calculating mean value W and the set of parameters k_high, k_low, V_high, V_low and α_high and α_low is the same as the one above mentioned. In addition, a visual check indicates that the details of the object have not been altered as a result of applying the method according to the additional pre-process.

In order to represent values of initial pixel values, W values, f(W) values and corrected pixel values, an example based on the images of FIG. 53 and FIG. 54 will now be described. One color channel such as the Red color channel is considered. Each Red color channel of the images of FIG. 53 and FIG. 54 is represented in FIG. 58 and FIG. 58 respectively. FIG. 58 and FIG. 59 show a white line representing a line of pixels of interest for illustration of values of W and f(W).

FIG. 60 shows a graph representing the pixel values or intensity values for the line of pixels of interest for initial image I1 shown in FIG. 58 and reference image 12 shown in FIG. 59.

FIG. 61 represents the corrected image I1 c of initial image I1 in FIG. 58 using reference image I2 on FIG. 59. The mean value W is calculated using one reference image shown in FIG. 59. Thus, the mean value is equal to the ratio of initial image I1 shown in FIG. 58 and reference image I2 shown in FIG. 59.

FIG. 62 shows a graph representing the mean value W and the corrected function f(W). f(W) is calculated using the same parameters k_high, k_low, V_high, V_low and α_high and α_low as above mentioned. FIG. 62 shows values of f(W) as being not equal to zero, which indicate pixels to be corrected. The values correspond to both bright zones, i.e. relatively high values of W, and dark zones, i.e. relatively low values of W.

FIG. 63 shows a graph representing the pixels values for the line of pixels of interest for initial image I1 shown in FIG. 58 and the corrected image I1 c shown in FIG. 61.

FIG. 64 shows a graph representing the mean value W estimated as the ratio of initial image I1 shown in FIG. 58 and reference image I2 shown in FIG. 59 and the corrected mean value We estimated as being the ratio of corrected image I1 c shown in FIG. 61 and reference image I2 shown in FIG. 59.

As shown in FIG. 63, the intensity value of bright zones in corrected image I1 c is lower than the intensity value of bright zones in image I1 as shown in FIG. 60. In a similar manner, as shown in FIG. 63, the intensity value of dark zones in corrected image I1 c is higher than the intensity value of dark zones in image I1 as shown in FIG. 60. In addition, intensity values of pixels characterizing object texture and surface remain unchanged for corrected image I1 c in FIG. 63 when compared with the intensity value of some pixels in image I1 as shown in FIG. 60.

It can be noted that some zones which are bright or dark on both initial image I1 and reference image I2 are not detected and thus not corrected. As a result, values of intensity of these zones remain abnormally high or low respectively. However, the use of more reference images with bright or dark zones which do not totally overlap each other optimizes the method of the present invention which is at least directed to avoid such misdetection.

Alternatively, instead of determining specific values for the above parameters, an automatic system for adapting the values of the parameters may be implemented.

The location of specular zones on each image is of significant importance to improve the quality of the corrected image with the method according to the present invention. Indeed, as already mentioned, each specular zone, i.e. bright zone or dark zone, should not totally overlap another specular zone to provide a corrected image of improved quality.

Thus, FIG. 87 represents a schematic view of a superimposition of four images of an object 580, wherein image 1 comprises a specular zone 590, image 2 comprises a specular zone 591, image 3 comprises a specular zone 592 and image 4 a comprises specular zone 593. No specular zone overlaps another. The method according to the present pre-process provides the best results with specular zones being located as in FIG. 87.

FIG. 88 represents a schematic view of a superimposition of four images of the object 580, wherein image 1 comprises a specular zone 601, image 2 comprises a specular zone 602, image 3 comprises a specular zone 603 and image 4 comprises a specular zone 604. Each of specular zones 601, 602, 603 and 604 partially overlaps at least another specular zone.

FIG. 89 represents a schematic view of a superimposition of four images of the object 580, wherein image 1 comprises a specular zone 611, image 2 a comprises specular zone 612, image 3 comprises a specular zone 613 and image 4 comprises a specular zone 61. At least specular zone 611 totally overlaps specular zones 612, 613 and 614.

FIG. 68 represents an artificial surface of an object captured with different illumination directions.

FIG. 69 represents one of the initial images where correction of a bright zone is required.

FIG. 70 represents an artificial image made of a superimposition of the specular components of seven images corresponding to seven evenly spatially distributed illumination sources.

FIG. 71a represents a corrected image of FIG. 69 using seven reference images acquired from seven evenly spatially distributed illumination sources.

FIG. 71b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 71a , for the diffuse component in solid line and for the resulting component based on the soft correction in dotted line. As the bright zones are evenly located, the quality of the corrected image is satisfactory. This is shown by the resulting component following the diffuse component on the graph of FIG. 43b . In addition, there is no specific impact on zones that do not require correction.

FIG. 72 represents an artificial image made of a superimposition of the specular components of seven images corresponding to seven randomly spatially distributed illumination sources.

FIG. 73a represents a corrected image of FIG. 41 using seven reference images acquired from seven randomly spatially distributed illumination sources.

FIG. 73b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 73a , for the diffuse component in solid line and for the resulting component based on the soft correction in dotted line. The quality of the corrected image is also satisfactory when illumination sources are randomly located.

FIG. 74 represents an artificial image made of a superimposition of the specular components of seven images corresponding to seven closely located illumination sources.

FIG. 75a represents a corrected image of FIG. 41 using seven reference images acquired from seven closely located illumination sources.

FIG. 75b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 75a , for the diffuse component in solid line and for the resulting component based on the soft correction in dotted line. As bright zones shown in FIG. 74 overlap, the correction process may not be completed. Indeed, overlapping bright zones may not be detected as being a zone having an incorrect intensity.

FIG. 76 represents the specular component of one image corresponding to an illumination source opposite to the specular zone to be corrected.

FIG. 77a represents a corrected image of FIG. 69 using one reference image acquired from one illumination source opposite to the specular zone to be corrected.

FIG. 77b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 77a , for the diffuse component in solid line and for the resulting component based on the soft correction in dotted line. The corrected image is of good quality, though the general distribution of light on the object surface is not obtained.

FIG. 78 represents an artificial image made of a superimposition of the specular components of ninety-nine images corresponding to ninety-nine randomly spatially distributed illumination sources.

FIG. 79a represents a corrected image of FIG. 69 using ninety-nine reference images acquired from ninety-nine randomly spatially distributed illumination sources.

FIG. 79b represents the distribution of pixels intensities along the horizontal white line shown in FIG. 79a , for the diffuse component in solid line and for the resulting component based on the soft correction in dotted line. The corrected image is of improved quality.

Thus, the best results for correction of images are obtained when considering a significant number of images randomly or evenly spatially distributed.

It appears that using two initial images acquired with opposite light source directions results in bright zones that are located at a remote distance from one another. Accordingly, weighting value W as previously defined applies in an optimal manner and the corrected image is of improved quality.

When using a plurality of initial images such as a dozen images acquired with close light source directions, artifacts and total or partial overlapping zones of bright zones may appear. Thus, weighting value W as previously defined may not correctly detect bright zones or correct such bright zones in an efficient manner.

FIGS. 80a, 80b, 80c and 80d represent four initial images of a circular object comprising bright zones at different locations without any overlapping zones.

FIGS. 81a, 81b, 81c and 81d represent images of the circular object where bright zones have been corrected using an inpainting process well-known in the prior art.

FIGS. 82a, 82b, 82c and 82d represent corrected images of the circular object after application of the method of the present invention using soft correction. It appears that corrected images of FIGS. 82a, 82b, 82c and 82d are of an improved quality when compared with corresponding corrected images 81 a, 81 b, 81 c and 81 d obtained with the well-known inpainting process.

A schematic comparison may be provided to compare prior art processes for removing specular zones on images of an object comprising several circular lines.

FIG. 83 shows a schematic view of contour lines of the surface of the circular object after a surface reconstruction process with no correction of bright zones. It appears that some circular lines are stretched.

FIG. 84 shows a schematic view of contour lines of the surface of the circular object after reconstruction with an inpainting process known in the prior art. It appears that some circular lines are still stretched. The corrected image is of poor quality.

FIG. 85 shows a schematic view of contour lines of the surface of the circular object using the well-known algorithm of Coleman and Jain known in the prior art. Circular lines are stretched and modified in a significant manner. The corrected image is of poor quality.

FIG. 86 shows a schematic view of contour lines of an object after a reconstruction process obtained using the method of the invention where parameters are V_high=1.2, k_high=k_low=0.5 and α_high=α_low=10.

As shown in FIG. 86, circular lines are not stretched and the distance between each circular line remains constant. The method for removing specular zones according to the additional pre-process provides best results.

The first embodiment comprising

$W = {\sum\limits_{j = 1}^{p}{c_{j}\frac{I}{I_{refj}}}}$ and ${f\left( W_{{{im}\; \_ \; {number}},{p\; \_ \; {number}}} \right)} = \frac{k}{1 + ^{{- \alpha}*{({W_{{i\; m\; \_ \; {nmber}},{p\; \_ \; {number}}} - V})}}}$

operates within the algorithm below: Algorithm 1: Soft specularity correction algorithm.

1: In:

-   -   I—image to be corrected;     -   M—number of pixels in image I;     -   {I_(ref)}—sequence of reference images;     -   p—number of reference images;     -   k, α, V—sigmoid function parameters.

2: Out:

-   -   I_(c)—image with corrected specular zones.         3: for p_number=1, . . . , M do         4: for l=1, . . . , p do         5: IR^(l)(p_number)←I(p_number)/I_(ref) ^(l)(p_number)         6: end for         7: WR(p_number)←AggregRatio(IR(p_number))         8: f(p_number)←k/1+e^(−α(WRp) ^(_) ^(number)-V))         9: I_(c)(p_number)←(p_number)/W(p_number)^(f(p) ^(_) ^(number))         10: end for

The first embodiment above described provides results with enhanced quality in the situation where the user may define the adapted settings for each parameter k, V and a based on the sets of reference images.

In a second embodiment, the weighting value W is calculated as defined below:

${W_{p\; \_ \; {number}} = {\sum\limits_{l = 1}^{p}{c_{l}\left( {\frac{I({p\_ number})}{I_{ref}^{l}({p\_ number})} - {{LinApprox}\left( {I,I_{ref}^{l}} \right)} + 1} \right)}}},$

Based on W being calculated in the second embodiment, f(W) now relates to an adaptive correction only based on values of parameter α.

I relates to the pixel intensities of the image to be corrected. In the second embodiment, the number of images im_number=1 and can thus be disregarded in further notations. When the image is unwrapped, i.e. vectorized, each pixel in the image I is referred to as I(p_number). In addition, in the present description of the second embodiment, image I and images used for correction are assumed to be gray-scaled, i.e. single-channel images. Thus, there is no need to use IR, IG and IB notations. Image I is the sole variable representation used in the algorithms. A set of p reference images is also used for correcting image I, image {I_(ref)} taken from the same fixed camera position and at different light source positions. For example, when the initial set of images comprises 3 images I₁, I₂, I₃, a first correction of the image I=I₁ is associated with a set of reference images {I_(ref)}={I₂,I₃}. In a similar manner, a second correction of the image I=12 is associated with a set of reference images {I_(ref)}={I₁,I₃}. In a similar manner, a third correction of the image I=I₃ is associated with a set of reference images {I_(ref)}={I₁,I₂}. Reference images may correspond to all other images of the initial sequence with the exception of the image to be corrected. General light source distribution or location for each image I can be seen as a low frequency component and roughly approximated to an additional plane of intensities. The orientation of the plane and the corresponding translation depends on the position and the intensity of the light source. If the image I has basic shading, then relative shading of each image I_(ref) ^(l), ∀Iε[1, p] may be represented as a linear approximation, called LinApprox as detailed below, of the matrix of ratio values IR_ratio=I

I_(ref) ^(l), where ‘

’ relates to the point-to-point division. Thus, when subtracting the approximated plane from the evaluated values of IR_ratio, the general shading is removed. When there is no specular zone, value of this subtraction tends to zero.

LinApprox(I,I_(ref) ^(l)) is an approximation of the matrix of ratio values

$\frac{I({p\_ number})}{I_{ref}^{l}({p\_ number})}$

by a plane using linear or robust regression coefficients. c_(l) denotes weight of image ratios for generalized mean values. The coefficients of the linear approximation may be obtained by minimizing the following error:

$\min\limits_{a_{0},a_{1},a_{2}}{{{\frac{I({p\_ number})}{I_{ref}^{l}({p\_ number})} - \left( {a_{0} + {a_{1}x} + {a_{2}y}} \right)}}_{2}^{2}.}$

Where a0, a1, a2 are the coefficients of the equation defining the approximated plane.

Adding one to the residual between ratio value and approximated plane provides a possibility to operate with W as with a simple ratio. The closer the value of W(p_number) is to 1, the less the difference between I(p_number) and I_(ref) ^(l)(p_number).

Application of the evaluated adaptive ratio eliminates the need to use threshold V in this second embodiment. The approximated plane obtained, LinApprox(I,I_(ref) ^(l)), may be seen as a matrix of threshold values appropriate to each pixel (p_number) and for each reference image 1. The corrected image pixel I_(c)(p_number) can be evaluated as:

${{I_{c}({p\_ number})} = \frac{I({p\_ number})}{{W({p\_ number})}^{g{({p\; \_ \; {number}})}}}},$

where

${{g({p\_ number})} = \frac{k}{1 + ^{{- \alpha}\; {W{({p\; \_ \; {number}})}}}}},$

k is a degree of correction and a defines the sharpness of transition between corrected and non-corrected zones. Parameters k and a have the same meanings as for the soft specularity removal algorithm without adaptive threshold.

The second embodiment operates with the corresponding second algorithm below:

Algorithm 2: Adaptive soft specularity correction algorithm. 1: In: I—image to be corrected; M—number of pixels in image I; {I_(ref)}—sequence of reference images; p—number of reference images; k, α—sigmoid function parameters. 2: Out: I_(c)—image with corrected specular zones. 3: for l = 1, . . . , p do 4:  for p_number 1, . . . , M do 5:   IR^(l)(p_number) ← I(p_number)/I_(ref) ^(l)(p_number) 6:  end for 7:  S^(l) ← LinApprox(IR^(l)) 8:  K^(l) ← IR^(l) − S^(l) + 1 9: end for 10: for p_number = 1, . . . , M do 11:   WR(p_number) ← AggregRatio(K(p_number)) 12:    $\left. {g\left( {p_{—}{number}} \right)}\leftarrow\frac{k}{1 + e^{- {{aW}{({p_{—}{number}})}}}} \right.$ 13:   I_(c)(p_number) ← I(p_number)/W(p_number)g^((p)_number) 14: end for

Both Algorithm 1 and Algorithm 2, related to the first and the second embodiments for providing a corrected image of an object respectively, have the same correction principle. However, in Algorithm 1, the predefined threshold value V was previously included into the correcting function evaluation (line 8, Algorithm 1). For Algorithm 2, this value is no longer subtracted (line 12, Algorithm 2) as a result of the operation of linear approximation of the matrix of ratio values IR (line 7, Algorithm 2) and subtraction from the initial matrix of ratio values (line 8, Algorithm 2). This is similar to having a proper threshold value for each image pixel instead of fixed value V for all pixels of the image. Image correction is divided into two loops (line 3-9, Algorithm 2 and line 10-14, Algorithm 2) due to the necessity of identifying all values of the matrix of ratio values IR for the linear approximation S (line 7, Algorithm 2). All other operations, as for Algorithm 1, remain pixel-related.

The second embodiment provides results with enhanced quality where the image to be corrected relates to illumination conditions which differ significantly from the illumination conditions of reference images.

Thus, pixel values with a high intensity which may be generated by an effect of light due, for example, to the specific nature of the object, are considered for pixel correction and are less corrected than pixel having pixel values that generates a weighting value W higher than Vm_high.

Thus, pixel values with a low intensity which may be generated by an effect of light due, for example, to the specific nature of the object or the Petri dish, are considered for pixel correction and are less corrected than pixel having pixel values that generates a weighting value W higher than Vm_high.

The present invention provides a solution for replacing all pixel values of images being processed. The present invention provides simultaneous correction of pixel values of specific zones or image regions comprising bright pixels such as specular pixels and dark pixels such as shadow pixels. The invention provides a solution for correcting corresponding pixel values in such zones without requiring predetermined information regarding the illumination directions and/or location of illumination sources. The invention provides a method based on a multiplicity of images by sequentially considering all pixels in all images. This implies that the pixel information from all images is used to provide correction to any pixel being associated with a specular pixel or shadow pixel. The invention allows pixel values of specific zones comprising specific information associated with the image regarding a specific illumination direction to remain unchanged. Indeed, each pixel value of such specific zones is processed and replaced with the same pixel value as a different pixel value is not required for this pixel value. Pixel values of the specific zones may relate to shading information of the related image. Thus, in the present invention, all pixels in the images are taken into consideration and merged to provide replacement and also correction of pixel values. This aspect allows the orientation of the surface of the object to be reliably estimated when processing the photometric stereo method, for example, in a further step of the method. The processing of the further photometric stereo method is also improved as the present invention provides a multiplicity of corrected images based on the multiplicity of initial images. In a specific embodiment, a minimum of two images of the object are necessary to correct pixel values of only one image of the object if no further surface reconstruction process is required.

In addition, the present pre-process is suitable for restoring highlighted and shadowed zones of images even when considering zones of substantial size and comprising complex pixel texture.

In order to optimize the solution of the present pre-process, a significant number of images may be used and a significant number of illumination sources may be located evenly around the object. Thus, an increased amount of information related to pixel values of the object can be considered. As a result, the correction of pixel values may be improved. Furthermore, to optimize the correction of pixel values, a zone of interest must not totally overlap another zone of interest in all other images.

The method of the present pre-process applies in an optimal manner to images related to specular hemispheric objects such as images of micro-organisms.

BIBLIOGRAPHICAL REFERENCES

-   [1] J. C. BEZDEK, R. J. HATHAWAY, Some Notes on Alternating     Optimization, Proceedings of the 2002 AFSS International Conference     on Fuzzy Systems, 2002, pp. 288-300. -   [2] I. CSISZ'AR, G. TUSN'ADY, Information Geometry and Alternating     Minimization Procedures, Statistics & Decisions, Supplement Issue     1 (1984) 205-237. -   [3] R. J. HATHAWAY, Y. HU, J. C. BEZDEK, Local Convergence of     Tri-level Alternating Optimization, Neural Parallel & Scientific     Comp. 9 (2001) 19-28. -   [4] R. BASRI, D. W. JACOBS, I. KEMELMACHER, Photometric Stereo with     General, Unknown Lighting, International Journal of Computer Vision     72 (3) (2007) 239-257. -   [5] R. T. FRANKOT, R. CHELLAPPA, A Method for Enforcing     Integrability in Shape from Shading Algorithms, IEEE Transactions on     Pattern Analysis and Machine Intelligence 10 (4) (1988) 439-451. -   [6] E. COLEMAN, R. JAIN, Obtaining 3-Dimensional Shape of Textured     and Specular Surfaces Using Four-Source Photometry, Computer     Graphics and Image Processing 18 (1982) 309-328. -   [7] P. KOVESI, Shapelets Correlated with Surface Normals Produce     Surfaces, Proceedings of the International Conference on Computer     Vision, 2005, pp. 994-1001. -   [8] S. BOYD, L. VANDENBERGHE, Convex Optimization, Cambridge     University Press, New York, N.Y., USA, 2004. -   [9] R. T. ROCKAFELLAR, Lagrange Multipliers and Optimality, SIAM     Rev. 35 (2) (1993) 183-238. -   [10] K. LEVENBERG, A Method for the Solution of Certain Problems in     Least Squares, Quart. Applied Math. 2 (1944) 164-168. -   [11] R GROSSE, M. K. JOHNSON, E. H. ADELSON, W. T. FREEMAN,     Groundtruth Dataset and Baseline Evaluations for Intrinsic Image     Algorithms, International Conference on Computer Vision, 2009, pp.     2335-2342. -   [12] Woodham, R. J. (1980): “Photometric method for determining     surface orientation from multiple images”, Optical engineering 19,     pp. 513-531. -   [13] Hayakawa, H. (1994): “Photometric stereo under a light source     with arbitrary motion”, Society of America 11, pp. 3079-3088. 

1. A method for obtaining a model of an object surface from a plurality of images of said object (107), wherein the object (107) is illuminated with one or more illumination sources (104, 105, 106), the method comprising: obtaining a set of images each comprising an array of pixels and representing similar views of an object, wherein the similar views are obtained under different illumination conditions; defining a model function (f) that expresses the known pixel intensity values of the images in terms of the following unknown model components: a first model component (A) representing the albedo of the object (107) at each pixel location, the first model component being an albedo value which is the same for the plurality of images; a second model component (L) representing an intensity of illumination for each image, the second model component being an illumination source intensity value which is the same for all pixels of each image; a third model component (V) representing a specific illumination direction, the third model component being an illumination vector which is different for each image and the same for all pixels of each image; a fourth model component (N) representing surface normal directions of the object surface at each pixel position, the fourth model component being a normal vector which is the same for all images; performing one or more sequences of minimization operations to minimize a difference function between the pixel values obtained from the set of images and pixel values calculated using said model function (f), each minimization operation being performed by allowing one of said model components (A, L, V, N) to vary while the others remain unchanged; outputting the fourth model component (N) as said model of the object surface.
 2. The method as claimed in claim 1, wherein said sequence of minimization operations comprises an iterative loop in which each of said model components (A, L, V, N) is varied in turn at least once before a subsequent iteration, said iterative loop being repeated until a termination condition is met.
 3. The method as claimed in claim 2, wherein said iterative loop comprises one or more inner loops wherein a subset of said model components (V, N) are varied a number of times before another subset of said model components (A, L) is varied.
 4. The method as claimed in claim 3, wherein one inner loop comprises varying said third model component (V) and said fourth model component (N) a number of times.
 5. The method as claimed in claim 3, wherein one inner loop comprises varying said first model component (A) and said second model component (L).
 6. The method as claimed in claim 1, wherein minimization operations are performed, varying said third model component (V) and said fourth model component (N) a number of times before minimization is performed, varying said first model component (A) and said second model component (L).
 7. The method as claimed in claim 1, wherein the first model component (A) comprises a first model sub-component (A′) and a first structuring component (W_(A)), where the first structuring component (W_(A)) adapts the first model sub-component (A′) to reproduce the surface properties of the object (107).
 8. The method as claimed in claim 1, wherein the second model component (L) comprises a second model sub-component (L′) and a second structuring component (W_(L)), wherein the second structuring component (W_(L)) adapts the second sub-component (L′) to reproduce the illumination conditions of the illumination sources (104, 105, 106).
 9. The method as claimed in claim 1, wherein the third model component (V) comprises a third model sub-component (V′) and a third structuring component (W_(V)), wherein the third structuring component (W_(V)) adapts the third model sub-component (V′) to reproduce the illumination conditions of the illumination sources (104, 105, 106).
 10. The method as claimed in claim 7, wherein the first structuring component (W_(A)) represents a same coefficient for the plurality of images comprising the same albedo value for each pixel for the plurality of images.
 11. The method as claimed in claim 8, wherein the second structuring component (W_(L)) represents a same intensity coefficient for all pixels of an image from the plurality of images.
 12. The method as claimed in claim 9, wherein the third structuring component (W_(V)) represents the direction of illumination of one illumination source (104, 105, 106) associated with one image of said plurality of images, this being the same for all pixels of an image from the plurality of images.
 13. The method as claimed in claim 1, wherein the one or more illumination sources (104, 105, 106) comprise Red, Green and Blue color channels.
 14. The method as claimed in claim 13, wherein the first model component (A) is the same for each pixel and each color channel for the plurality of images and the second model component (L) is the same for each color channel for all pixels of each image.
 15. The method as claimed in claim 13, wherein the first structuring component (W_(A)) comprises the same albedo value for each pixel for each color channel for the plurality of images.
 16. The method as claimed in claim 13, wherein the second structuring component (W_(L)) represents a same intensity coefficient for each color channel for all pixels of each image.
 17. The method as claimed in claim 1, wherein model function (f) comprises a modified model function (g), wherein the model function (f) related to the first, second, third and fourth model components (A, L, V, N) is equal to the modified model function (g) related to a first, second and third model sub-components (A′, L′ V′) and the fourth model component (N), wherein the first model sub-component (A′) is adapted by a first structuring component (W_(A)), to reproduce the surface properties of the object (107); the second model sub-component (L′) is adapted by a second structuring component (W_(L)), to reproduce the illumination conditions of the illumination sources (104, 105, 106); and the third model sub-component (V′) is adapted by a third structuring component (W_(V)), to reproduce the illumination conditions of the illumination sources (104, 105, 106).
 18. A computer program product comprising instructions which when executed cause a programmable data processing apparatus to perform steps of the method according to claim
 1. 19. An imaging system (100) for obtaining a model of an object surface from a plurality of images of said object (107), the imaging system (100) comprising: one or more illumination sources (104, 105, 106) to illuminate the object (107) with different directions of illumination, wherein each image is associated with a determined direction of illumination; an image capture device (108) for detecting the pixel values of each pixel in each image of the plurality of images; a data processor (114) comprising a first memory component (116) for storing the following unknown model components: a first model component (A) representing the albedo of the object (107) at each pixel location, the first model component being an albedo value which is the same for the plurality of images; a second model component (L) representing an intensity of illumination for each image, the second model component being an illumination source intensity value which is the same for all pixels of each image; a third model component (V) representing a specific illumination direction, the third model component being an illumination vector which is different for each image and the same for all pixels of each image; a fourth model component (N) representing surface normal directions of the object surface at each pixel position, the fourth model component being a normal vector which is the same for all images; wherein the data processor (114) performs one or more sequences of minimization operations to minimize a difference function between the received pixel values over the set of images and pixel values calculated using a defined model function (f) that expresses the known pixel values of images in terms of the unknown model components; and wherein each minimization operation is performed by allowing one of said model components (A, L, V, N) to vary while the other model components remain fixed and for outputting the normal model component (N) as said model of the object surface.
 20. An imaging system (100) as claimed in claim 19, wherein the data processor (114) further comprises a second memory component (118) for storing structuring components (W_(A), W_(V), W_(L)) to adapt one or more of the model sub-components (A′, L′, V′) to reproduce the surface properties of the object (107) and the illumination conditions of the illumination sources (104, 105, 106). 